const fs = require('fs')
const path = require('path')

const CACHE_DIR = path.resolve(__dirname, '../data/cache')
console.log('缓存目录:', CACHE_DIR)

// 确保缓存目录存在
if (!fs.existsSync(CACHE_DIR)) {
  console.log('创建缓存目录...')
  fs.mkdirSync(CACHE_DIR, { recursive: true })
}

// 保存API响应到本地
async function saveApiResponse(filename, data) {
  try {
    const filepath = path.join(CACHE_DIR, filename)
    console.log('保存缓存文件:', filepath)
    
    // 使用同步方法确保写入完成
    fs.writeFileSync(
      filepath, 
      JSON.stringify(data, null, 2),
      'utf-8'
    )
    console.log('缓存保存成功')
    return true
  } catch(e) {
    console.error('保存缓存失败:', e)
    return false
  }
}

// 读取本地缓存数据
async function getLocalCache(filename) {
  try {
    const filepath = path.join(CACHE_DIR, filename)
    console.log('读取缓存文件:', filepath)
    
    if (!fs.existsSync(filepath)) {
      console.log('缓存文件不存在')
      return null
    }
    
    const data = fs.readFileSync(filepath, 'utf-8')
    console.log('缓存读取成功')
    return JSON.parse(data)
  } catch(e) {
    console.error('读取缓存失败:', e)
    return null
  }
}

// 生成缓存文件名
function generateCacheFilename(companyCode, type, year = '') {
  const filename = `${companyCode}_${type}${year ? '_' + year : ''}.json`
  console.log('生成缓存文件名:', filename)
  return filename
}

module.exports = {
  saveApiResponse,
  getLocalCache,
  generateCacheFilename
} 